2.1 Dart 类
runtime/vm/dart.h
声明了 Dart 类,Dart 类是 DartVM 的核心类之一,负责管理整个 VM 的生命周期和全局状态。
静态属性
VM Isolate 的指针。VM Isolate 是一个特殊的 Isolate,用于 VM 内部操作。
static Isolate* vm_isolate_;
VM 启动时间(以微秒为单位)。
static int64_t start_time_micros_;
VM 使用的线程池。
static ThreadPool* thread_pool_;
用于生成 pprof 性能分析工具使用的符号信息。
static DebugInfo* pprof_symbol_generator_;
预定义的只读句柄集合。
static ReadOnlyHandles* predefined_handles_;
VM 快照的类型。快照用于快速启动 VM。
static Snapshot::Kind vm_snapshot_kind_;
Init
初始化 DartVM。这是 VM 启动时调用的第一个方法,用于设置全局状态和初始化各个子系统。
static char* Init(const Dart_InitializeParams* params);
Cleanup
清理并关闭 DartVM。在 VM 关闭时调用,用于释放资源和执行必要的清理工作。
static char* Cleanup();
IsInitialized
检查 DartVM 是否已经初始化。
static bool IsInitialized();
SetActiveApiCall/ResetActiveApiCall
这两个方法用于跟踪活跃的 API 调用。SetActiveApiCall 在进行 API 调用时设置标志, ResetActiveApiCall 在调用结束时重置标志。
static bool SetActiveApiCall();
static void ResetActiveApiCall();
CreateIsolate
创建一个新的 Isolate (Dart 的执行单元)。
static Isolate* CreateIsolate(...);
InitializeIsolateGroup/InitializeIsolate
初始化 Isolate 组和单个 Isolate。Isolate 组是共享某些资源的 Isolate 集合。
static ErrorPtr InitializeIsolateGroup(...);
static ErrorPtr InitializeIsolate(...);
RunShutdownCallback/ShutdownIsolate
执行 Isolate 关闭回调和关闭 Isolate。
static void RunShutdownCallback();
static void ShutdownIsolate(Thread* T);
VmIsolateNameEquals
检查给定的名称是否是 VM Isolate 的名称。VM Isolate 是一个特殊的 Isolate,用于 VM 内部操作。
static bool VmIsolateNameEquals(const char* name);
UptimeMicros
获取 VM 运行时间(以微秒为单位)。
static int64_t UptimeMicros();
AllocateReadOnlyHandle/AllocateReadOnlyApiHandle
分配只读句柄。句柄用于在 C++ 和 Dart 之间安全地传递对象引用。
static uword AllocateReadOnlyHandle();
static LocalHandle* AllocateReadOnlyApiHandle();
IsReadOnlyHandle/IsReadOnlyApiHandle
检查给定的句柄是否是只读句柄。
static bool IsReadOnlyHandle(uword address);
static bool IsReadOnlyApiHandle(Dart_Handle handle);
FeaturesString
生成描述 VM 当前特性和配置的字符串。
static char* FeaturesString(...);
本文作者:Maeiee
本文链接:2.1 Dart 类
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!